package exempleRMI;

import java.io.File;  
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Scanner;

public class ExClient{
	
        public static void main(String args[]) throws FileNotFoundException
	{
            String filePath = "/home/c/cailleol/workspace/Poussin.txt";
            
            //Déclaration des scanners
            Scanner sc = new Scanner(System.in);    
            Scanner sc_file = new Scanner(new File(filePath));
            
            System.out.println("Début du client.");
            
            try {
                        //Déclaration d'une valeur String
                        String valeurR = "Le poussin";
                        
                        String nomFichier = null;
                        int i=0;
                        int ch;
                        byte[] tableau;
                
                        //Instanciation d'une variable qui va nous permettre de récupérer les valeurs sur la machine virtuelle
                        I_server instance_server = (I_server) Naming.lookup("rmi://localhost/TestRMI");
			
                        //Exemple avec la méthode addition
                        //instance_server.addition(7, 7);
                        
                        //Exemple avec la méthode AffichageChaine
                        /*System.out.println("Veuillez taper quelque chose : ");
                        String s = sc.nextLine();
                        valeurR = instance_server.AffichageChaine(s);
                        System.out.println("Vous avez tapé : " + valeurR);*/
                        
                        //Exemple de lecture de fichier
                        /*while (sc_file.hasNextLine()) 
                        {
                            String line = sc_file.nextLine();
                            System.out.println(line);
                        }*/
                        
                        //Exemple d'écriture dans un fichier
                        instance_server.StockageChaine("Poussin.txt", valeurR); 
                        
                        //Travail du Jeudi 18 Avril, après-midi
                        
                        System.out.println("Quel est le nom du fichier à envoyer ?");
                        nomFichier = sc.nextLine();
                        filePath = "/home/c/cailleol/workspace/" + nomFichier;
                        java.io.File fichier = new File(filePath);
                        
                        try {			
                            FileInputStream f = new FileInputStream(fichier);
                            try{
                                    //Création du tableau de byte
                                    tableau = new byte[(int)fichier.length()];				
                                    while((ch = f.read()) != -1){ 
                                        tableau[i]=(byte)ch;
                                        i++;						
                                    }
                            }
                            finally{
                                    f.close();
                            }
                        }
                        
                        catch(FileNotFoundException ef){
                            System.out.println("Le fichier est introuvable.");
                        }
                        catch(IOException e){
                            System.out.println(e + "Erreur lors de la lecture du fichier.");		
                        }		
                        
                } catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
            
            //Fermeture des scanners
            sc.close();
            sc_file.close();
            
            System.out.println("Fin du client.");
            
	}
}
